Using Loops to Repeat a Group of Commands

To repeat the same group of commands successively, use one of the loop structures. Several types of loops are available. Each type gives you a different way to exit the loop, based on a conditional test.

Loop and loop-related commands reside on the Program Editor’s Control and Transfers menus.

When you insert one of the loop structures, its template is inserted at the cursor location. You can then begin entering the commands that will be executed within the loop.

For...EndFor Loops

A For...EndFor loop uses a counter to control the number of times the loop is repeated. The syntax of the For command is:

Note: The ending value can be less than the beginning value, provided the increment is negative.

For variable, begin, end [, increment]

 

À

Á

Â

Ã

À

Variable used as a counter

Á

Counter value used the first time For is executed

Â

Exits the loop when variable exceeds this value

Ã

Added to the counter each subsequent time For is executed (If this optional value is omitted, the increment is 1.)

When For is executed, the variable value is compared to the end value. If variable does not exceed end, the loop is executed; otherwise, control jumps to the command following EndFor.

Note: The For command automatically increments the counter variable so that the function or program can exit the loop after a certain number of repetitions.

At the end of the loop (EndFor), control jumps back to the For command, where the variable is incremented and compared to end.

For example:

À

Displays 0, 1, 2, 3, 4, and 5.

Á

Displays 6. When variable increments to 6, the loop is not executed.

Note: You can declare the counter variable as local if it does not need to be saved after the function or program stops.

While...EndWhile Loops

A While...EndWhile loop repeats a block of commands as long as a specified condition is true. The syntax of the While command is:

While condition

When While is executed, condition is evaluated. If condition is true, the loop is executed; otherwise, control jumps to the command following EndWhile.

Note: The While command does not automatically change the condition. You must include commands that allow the function or program to exit the loop.

At the end of the loop (EndWhile), control jumps back to the While command, where condition is re-evaluated.

To execute the loop the first time, the condition must initially be true.

Any variables referenced in the condition must be set before the While command. (You can build the values into the function or program, or you can prompt the user to enter the values.)
The loop must contain commands that change the values in the condition, eventually causing it to be false. Otherwise, the condition is always true and the function or program cannot exit the loop (called an infinite loop).

For example:

À

Initially sets x.

Á

Displays 0, 1, 2, 3, and 4.

Â

Increments x.

Ã

Displays 5. When x increments to 5, the loop is not executed.

Loop...EndLoop Loops

A Loop...EndLoop creates an infinite loop, which is repeated endlessly. The Loop command does not have any arguments.

Typically, you insert commands in the loop that let the program exit from the loop. Commonly used commands are: If, Exit, Goto and Lbl (label). For example:

À

An If command checks the condition.

Á

Exits the loop and jumps to here when x increments to 6.

Note: The Exit command exits from the current loop.

In this example, the If command can be anywhere in the loop.

When the If command is:

The loop is:

At the beginning of the loop

Executed only if the condition is true.

At the end of the loop

Executed at least once and repeated only if the condition is true.

The If command could also use a Goto command to transfer program control to a specified Lbl (label) command.

Repeating a Loop Immediately

The Cycle command immediately transfers program control to the next iteration of a loop (before the current iteration is complete). This command works with For...EndFor, While...EndWhile and Loop...EndLoop.

Lbl and Goto Loops

Although the Lbl (label) and Goto commands are not strictly loop commands, they can be used to create an infinite loop. For example:

As with Loop...EndLoop, the loop should contain commands that let the function or program exit from the loop.